// utils/dom.js
export function getElementHeightByClassName(className, context = null, callback) {
  // 创建一个选择器查询实例
  const query = wx.createSelectorQuery().in(context || this);
  
  // 使用 selectAll 选择具有特定 class 名的所有元素
  query.selectAll(className).boundingClientRect(function(rects) {
    // 检查是否有匹配的元素
    if (rects.length > 0) {
      // 假设我们只需要第一个匹配元素的高度（或者你可以根据需求处理整个 rects 数组）
      const height = rects[0].height;
      
      // 调用回调函数并传递高度
      if (typeof callback === 'function') {
        callback(height);
      }
    } else {
      // 如果没有匹配的元素，可以抛出一个错误或者调用回调函数并传递 null/undefined
      console.error(`No elements found with class name: ${className}`);
      if (typeof callback === 'function') {
        callback(null);
      }
    }
  }).exec(); // 执行查询
}
export function getElemenWidthByClassName(className, context = null, callback) {
  // 创建一个选择器查询实例
  const query = wx.createSelectorQuery().in(context || this);
  
  // 使用 selectAll 选择具有特定 class 名的所有元素
  query.selectAll(className).boundingClientRect(function(rects) {
    // 检查是否有匹配的元素
    if (rects.length > 0) {
      // 假设我们只需要第一个匹配元素的高度（或者你可以根据需求处理整个 rects 数组）
      const height = rects[0].height;
      
      // 调用回调函数并传递高度
      if (typeof callback === 'function') {
        callback(height);
      }
    } else {
      // 如果没有匹配的元素，可以抛出一个错误或者调用回调函数并传递 null/undefined
      console.error(`No elements found with class name: ${className}`);
      if (typeof callback === 'function') {
        callback(null);
      }
    }
  }).exec(); // 执行查询
}
export async function getNodeHeightByClassName(className) {
    const simplePromise = new Promise((resolve, reject) => {
        wx.createSelectorQuery()
            .select(`.${className}`) // 注意这里使用了模板字符串来插入类名
            .boundingClientRect(rect => {
                if (rect) {
					console.log(rect,'rect')
                    resolve(rect.height); // 返回高度（px）
                } else {
                    reject(new Error('Element not found or unable to get bounding client rect'));
                }
            })
            .exec((err) => {
                if (err) {
                    reject(err);
                }
            });
			
    });
	// 使用 await 等待 Promise 的结果
	try {
		const result = await simplePromise;
		console.log(result,'kkkkkkkk111'); // 输出：操作成功！
		return result
	} catch (error) {
		console.error(error); // 如果 Promise 被拒绝，则输出：操作失败！
		return result
	}
}